<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //ES6允许使用箭头函数(=>)定义函数
        //函数声明
        // let fn = function(a, b) {

        // }
        // let fn = (a, b) => {
        //         return a + b;
        //     }
        //调用函数
        // let fn1 = fn(1, 2);
        // console.log(fn1);

        //特点
        //1.this是静态的    this始终指向函数声明时所在函数作用域下的this值
        function get() {
            console.log(this.name);
        }
        let get2 = () => {
            console.log(this.name);
        }
        window.name = `wzc`;
        const ST = {
            name: `WZC`
        }
        get.call(ST);
        get2.call(ST);
        //2.不能作为构造函数的实例化对象
        // let PER = (name, age) => {
        //     this.name = name;
        //     this.age = age
        // }
        // let me = new PER('wzc', 18);
        // console.log(me);
        //报错，显示PER不是一个构造器
        //3.不能使用arguments变量
        // let fn = () => {
        //     console.log(arguments);
        // }
        // fn(1, 2, 3);
        //报错，显示arguments未定义
        //4.箭头函数的简写
        //(1)省略小括号，当形参有且只有一个的时候
        // let add = n => {
        //     return n + n;
        // }
        // console.log(add(9));
        //(2)省略花括号,当代码体只有一条语句时，此时必须将return也必须省略，而且语句的返回值就是函数的返回值
        // let pow = (n) =>n*n;
        // let pow = n => n*n;
        // console.log( pow(3));
    </script>
</body>

</html>